package com.example.job.handler;

import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;

@Slf4j
@Component
public class XxlJobHandler {

    /**
     * 1、简单任务示例（Bean模式）
     */
    @XxlJob("xxlJobHandler")
    public void xxlJobHandler() {
        // 使用虚拟线程来执行业务逻辑，避免阻塞主线程
        Thread.ofVirtual().name("xxl-job-virtual-thread-").start(() -> {
            System.out.println("xxlJobHandler execute...");
            // 获取参数
            String param = XxlJobHelper.getJobParam();
            // 控制台输出日志
            log.info("【xxlJobHandler】 定时任务开始执行，参数为：{}", param);
            // 写日志到调度中心日志中
            XxlJobHelper.log("xxlJobHandler execute success...");

            // 设置任务结果，是返回给调度中心的结果，可以在调度中心的执行日志中的执行备注项查看
            XxlJobHelper.handleSuccess("任务执行成功了！");
            // TODO: 执行自己的业务逻辑
        });
    }

}
